#ifndef _TASK_H_
#define _TASK_H_

#include "tasktype.h"

void tsklistinit();
void enqueue(myTCB *tsk);
void dequeue();

void context_switch(unsigned long **prevTskStkAddr, unsigned long *nextTskStk);

int createTsk(void (*tskBody)(void), unsigned int arrt, unsigned int exet, unsigned int prior);
void destroyTsk(int tid);
void tskStart(int tskIndex);
void tskEnd();

void TaskManagerInit(void);
void Q_print(Q_LIST* handler);
void Q_schedule(Q_LIST *tskhandler);

#endif
